Various types of computing environments share resources across multiple hosts or other systems. For example, virtualized systems and virtualized environments often support the sharing and load balancing of resources across multiple hosts or other systems. In this example, a single host device can support multiple virtual machines that share common hardware components, storage systems, and the like. These virtual machines may also be referred to as “guest operating systems” as each host device is capable of supporting multiple instances of one or more operating systems.
When sharing a data storage system across multiple hosts or multiple virtual machines, the computing environment must properly manage a high volume of data input/output (I/O) operations. The volume of I/O operations is commonly measured in IOPS (I/O Operations Per Second). FIG. 1 illustrates an example of an existing virtualized environment 100 including multiple hosts 102, 104, and 106, and a data storage system 108. In a particular implementation, hosts 102-106 are servers or other computing devices capable of performing a variety of processing and computing functions. Each host 102-106 includes multiple virtual machines 110 operating simultaneously.
During their normal operation, virtual machines 110 initiate data I/O requests, such as data read requests and data write requests, associated with data storage system 108. Data storage system 108 includes multiple data storage drives 112 and/or other data storage mechanisms. The storage resources associated with data storage system 108 are shared among the multiple hosts 102-106 and the virtual machines 110 included in those hosts. Each host 102-106 includes a virtualization kernel 114 (also referred to as a “hypervisor”) that manages the virtual machines 110 as well as shared resources, such as data storage system 108.
As the number of virtual machines associated with a particular host increases, there is a corresponding increase in demand for shared resources, such as memory and I/O resources. An increase in I/O resource utilization includes an increased number of data I/O operations that cause a corresponding increase in data communicated between a host and a data storage system. In existing virtualized systems, the increased demand for shared resources such as I/O bandwidth often degrades the performance of the virtualized system. In these situations, one or more of the virtual machines experiences increased latency associated with the data I/O operations, which decreases the performance of the virtual machines. Thus, it is desirable to provide a computing environment that improves the handling of data I/O operations associated with multiple hosts or other systems.
Throughout the description, similar reference numbers may be used to identify similar elements.